package com.zl.tby.service;

import com.zl.tby.core.base.bean.TbyBaseQuery;
import com.zl.tby.core.base.bean.TbyPageResult;
import com.zl.tby.core.common.R;
import com.zl.tby.dto.TbyLayerConfigQuery;
import com.zl.tby.model.TbyLayerConfig;
import com.zl.tby.vo.TbyLayerConfigForm;

import java.util.List;

/**
 * 地图图层配置 service
 * @author changpeng
 * @version 1.0
 * @since 2024/8/6 19:56
 */
public interface ITbyLayerConfigService {

    /**
     * 添加
     * @param entity: 表单信息
     * @return 保存结果
     */
    R<TbyLayerConfig> add(TbyLayerConfigForm entity);

    /**
     * 修改
     * @param entity: 表单信息
     * @return 修改结果
     */
    R<TbyLayerConfig> update(TbyLayerConfigForm entity);

    /**
     * 根据id删除
     * @param id: 主键id
     * @return 删除结果
     */
    R<Void> delete(Long id);

    /**
     * 根据id获取对象
     * @param id: 主键id
     * @return 实体对象
     */
    TbyLayerConfig get(Long id);

    /**
     * 分页查询
     * @param query: 查询参数
     * @return 结果
     */
    TbyPageResult<TbyLayerConfigForm> page(TbyLayerConfigQuery query);

    /**
     * 列表查询
     * @return 结果
     */
    List<TbyLayerConfig> list(TbyLayerConfigQuery query);

    /**
     * 设置使用状态
     * @param id: 主键id
     * @param active：使用状态
     * @return 结果
     */
    R<Void> active(Long id, Integer active);

    /**
     * 验证图层名是否存在
     * @param id: 主键id
     * @param name：图层名
     * @return 结果
     */
    R<Boolean> checkName(Long id, String name);

    /**
     * 验证图层地址是否存在
     * @param id: 主键id
     * @param url：图层地址
     * @return 结果
     */
    R<Boolean> checkUrl(Long id, String url);
}
